#ifndef __PROTOCOL_H__
#define __PROTOCOL_H__

#include <string.h>
#include "project_thread.h"

#define USB  "/dev/ttyUSB0"
#define N 10

/*
 * 数据类型：
 * 		仓库：‘w’
 * 		货物：‘g’
 * */

//仓库环境结构体
typedef struct env_status{
	uint8_t storage_status;    //仓库状态
	uint8_t led_status;   	   //led开关状态
	uint8_t beep_status;  	   //蜂鸣器开关状态
	uint8_t fan_status;   	   //风扇开关状态
	uint8_t digital_info; 	   //数码管(仓库编号)
	char    x; 			  	   //三轴信息
	char    y;
	char    z;
	float   temperature;  	   //温度
	float   humidity;     	   //湿度
	float   light;             //光照强度
	uint8_t info_time[10]; 	   //获取信息的时间
}env_msg;

//货物信息结构体
typedef struct goods_status{
	uint8_t  goods_type;
	uint32_t goods_count;
}goods_msg;

//阈值信息结构体
typedef struct threshold_info{
	int temperature_max; 	 //温度上限
	int temperature_min; 	 //温度下限
	int humidity_max;    	 //湿度上限
	int humidity_min;    	 //温度下限
	int light_max;          //最大光照强度
	int light_min;          //最小光照强度
}threshold_t;

//消息队列结构体
typedef struct msg_queue{
	long type;  	      //消息类型
	long hal;   	      //要操作的硬件
	uint8_t operation[N]; //对设备的操作
}msg_t;

//共享内存结构体
struct shm_addr{
	char cgi_status;
	env_msg warehouse;
};

#endif
